home *** CD-ROM | disk | FTP | other *** search
-
- Program Sieve(input, output);
-
- const
- Psize = 7400;
-
- var
- I, J : integer;
- Reps : integer;
- Pcount : integer;
- Prime : integer;
- Hour, Min, Sec, Hund : integer;
- TStart, TEnd : real;
- Flags : array[1..Psize] of boolean;
-
- begin
- Writeln( '5 passes' );
- GetTime( Hour, Min, Sec, Hund );
- TStart := (Min * 60) + Sec + (Hund / 100);
-
- For Reps := 1 to 5 do
- begin;
- (* Write( '.' ); *)
- Pcount := 0;
- For I := 1 to Psize do
- Flags[I] := true; {Fill array with true.}
- For I := 1 to Psize do
- begin;
- If Flags[I] then
- begin;
- Pcount := Pcount + 1;
- Prime := I + I + 3;
- J := Prime + I;
- While J <= Psize do
- begin;
- Flags[J] := false;
- J := J + Prime;
- End {killing all multiples};
- End {found a prime};
- End {scan the array};
- End {each pass};
-
- GetTime( Hour, Min, Sec, Hund );
- TEnd := (Min * 60) + Sec + (Hund / 100);
- Writeln( (TEnd - TStart):4:2, ' seconds.' );
- Writeln( Pcount, ' primes found.' );
- End.
-